const WebSocket = require('ws');
const path = require('path');
const fileUtils = require('../utils/file_utils.js');
const wss = new WebSocket.Server({
    port: 9998,
});

module.exports.listen = () => {
    wss.on('connection', client => {
        console.log('有客户端连接成功了...');
        client.on('message', async msg => {
            try {
                let payload = JSON.parse(msg);
                const { action,chartName } = payload;
                if(action=='getData'){
                    //获取数据
                    let filePath = `../data/${chartName}.json`;
                    filePath = path.join(__dirname,filePath);//拿到绝对路径
                    const resultData = await fileUtils.getFileJsonData(filePath);//调用方法，入参 绝对路径 ，拿到数据
                    //需要在服务端获取到数据的基础之上,增加一个data字段,它就是对应json文件的内容
                    payload.data = resultData;
                    //返给客户端
                    client.send(JSON.stringify(payload))
                }else{
                    //其他情况,原封不动的转发到每一个处于连接状态的客户端
                    // wss.clients 所有客户端的连接
                    wss.clients.forEach(itemClient=>{
                        itemClient.send(JSON.stringify(payload))
                    })
                }

            } catch (error) {
                console.error('解析消息时发生错误：', error);
            }
        });
    });
};
